/* eslint-disable camelcase */
// 模块user.js => 封装用户相关的请求

// import axios from 'axios'
import request from '@/utils/request.js'
// request就是配置完毕的axios => request.post()

// 登录请求
export const loginPost = ({ username, password }) => {
  return request.post('/api/login', {
    username,
    password
  })
}

// 注册请求
export const regPost = ({ username, password, repassword }) => {
  return request.post('/api/reg', {
    username,
    password,
    repassword
  })
}

// 获取用户信息
// await infoGet() => await undefined
export const infoGet = () => {
  // return request.get('',)
  // axios.get(url,config)
  // return request.get('/my/userinfo', {
  //   headers: {
  //     Authorization: window.localStorage.getItem('token')
  //   }
  // })
  return request.get('/my/userinfo') //
}

// 修改用户信息
export const updateUserInfo = ({ id, nickname, email }) => {
  return request.put('/my/userinfo', {
    id,
    nickname,
    email
  })
}
// 修改头像
export const updateUserAvatar = avatar => {
  return request.patch('/my/update/avatar', {
    avatar
  })
}

// 更新密码
export const updatePwd = ({
  old_pwd,
  new_pwd,
  re_pwd
}) => {
// old_pwd 是 string 原密码 非空字符串、长度 6-15
// new_pwd 是 string 新密码 非空字符串、长度 6-15
// re_pwd 是 string 确认新密码 非空字符串、长度 6-15
// put => patch
//
  return request.patch('/my/updatepwd', {
    old_pwd,
    new_pwd,
    re_pwd
  })
}

// 上述代码的解释======>
// 需求: 外部使用loginPost时 希望这样调用 => await loginPost(), 所以
// 1. loginPost要返回Promise对象
// const Promise = loginPost()
// 2. 该对象可以.then
// Promise.then()
// 3. await 可以修饰该对象 => 这是我们的需求
// await Promise
